Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
SUMMARY: Bugfixes "fixes negative ammo in bandoliers and quivers"
Purpose of change
Fixes #40166
Fixes #40207
Describe the solution
item_pocket::overflow() had some bad logic for ammo_restriction items. i adjusted the if statement to properly check if the ammo overflows.
Additionally, when debugging this, i noticed that pick_one_up was causing a debug message because of Character::add_to_container(). i made this call Character::i_add() instead, because that function already has logic for searching for the best pocket, and handling if it doesn't find it.
Describe alternatives you've considered
Testing
sownloaded the save in #40207 and followed the steps - the number kept going more and more negative, and you kept dropping negative arrows so it was obvious to me that it had something to do with item_pocket::overflow.
Additional context
i'm not really sure why Character::add_item_to_container() exists... i guess maybe so you can pick up partial items? but you can already do that with
g
et, so i'm not really sure.